package com.glf.tool;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class ReadExcelFiles {
    public static void main(String[] args) {
        String rootPath = "D:\\wpkj\\以图管地数据\\清产核资\\走马镇";
        List<String> filePaths = new ArrayList<>();
        // 开始遍历查找
        File rootDir = new File(rootPath);
        if (rootDir.exists() && rootDir.isDirectory()) {
            // 遍历根文件夹下的子文件夹（第一层子文件夹）
            File[] firstLevelDirs = rootDir.listFiles(File::isDirectory);
            if (firstLevelDirs!= null) {
                for (File firstLevelDir : firstLevelDirs) {
                    // 遍历第一层子文件夹下的子文件夹（第二层子文件夹）
                    File[] secondLevelDirs = firstLevelDir.listFiles(File::isDirectory);
                    if (secondLevelDirs!= null) {
                        for (File secondLevelDir : secondLevelDirs) {
                            // 查找第二层子文件夹中的符合要求的文件
                            findExcelFiles(secondLevelDir, filePaths);
                        }
                    }
                }
            }
        }
        // 打印找到的文件路径
        for (String filePath : filePaths) {
            System.out.println(filePath);
        }
    }

    public static void findExcelFiles(File dir, List<String> filePaths) {
        File[] files = dir.listFiles();
        if (files!= null) {
            for (File file : files) {
//                System.out.println(file.getName().contains("资源"));
                if (file.isDirectory()) {
                    // 这里不再继续递归遍历更下一层的文件夹了，因为只需要两层
                } else {
                    // 如果是文件，判断文件名是否符合要求
                    if (file.getName().contains("资源") && (file.getName().toLowerCase().endsWith(".xlsx")||file.getName().toLowerCase().endsWith(".xls"))) {
                        filePaths.add(file.getAbsolutePath());
                    }
                }
            }
        }
    }
}